package com.dms.modules.user.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dms.modules.user.entity.UserBehaviorStats;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

@Mapper
public interface UserBehaviorMapper extends BaseMapper<UserBehaviorStats> {
    
    /**
     * 插入用户行为记录
     */
    int insertBehavior(@Param("userId") Long userId, 
                      @Param("behaviorType") String behaviorType,
                      @Param("targetId") Long targetId,
                      @Param("metadata") Map<String, Object> metadata);
    
    /**
     * 插入搜索历史
     */
    int insertSearchHistory(@Param("userId") Long userId,
                          @Param("keyword") String keyword);
    
    /**
     * 获取用户行为历史
     */
    List<Map<String, Object>> getUserBehaviorHistory(@Param("userId") Long userId,
                                                   @Param("behaviorType") String behaviorType,
                                                   @Param("startTime") LocalDateTime startTime,
                                                   @Param("endTime") LocalDateTime endTime);
    
    /**
     * 获取用户分类偏好
     */
    List<Map<String, Object>> getUserCategoryPreferences(@Param("userId") Long userId);
    
    /**
     * 清除用户行为历史
     */
    int clearBehaviorHistory(@Param("userId") Long userId,
                           @Param("behaviorType") String behaviorType);
    
    /**
     * 清除搜索历史
     */
    int clearSearchHistory(@Param("userId") Long userId);
} 